unit UFrmmsg;

interface

uses
  Windows, Registry, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Psock, NMMSG, dxCore, dxButton, ExtCtrls, StdCtrls, RxGIF;

type
  TFrmmsg = class(TForm)
    MsgClient100: TNMMsg;
    Edit1: TEdit;
    dxButton1: TdxButton;
    Label3: TLabel;
    Shape1: TShape;
    Image1: TImage;
    ghfghgf: TImage;
    function Getcomputer : string;
    Procedure enviarComando;
    procedure MsgClient100ConnectionFailed(Sender: TObject);
    procedure MsgClient100Connect(Sender: TObject);
    procedure dxButton1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frmmsg: TFrmmsg;
  comando : string;
implementation
uses constantes;
{$R *.DFM}
//===========fução para pegar no nome do computador...
function TFrmmsg.Getcomputer : string;
var
Registro: TRegistry;
begin
  Registro := TRegistry.Create;
  try
  Registro.RootKey := HKEY_LOCAL_MACHINE;
  if Registro.OpenKey('\System\CurrentControlSet\Services\VxD\VNETSUP', False) then
  begin
    Result := Registro.ReadString('ComputerName');
    Registro.CloseKey;
  end;
  finally
  Registro.Free;
end;
end;


// adiciona um parametro ao comando
procedure AdicionarParametro (parametro: string; index: integer);
begin
  if index= 0 then
    Comando:='';
  while length(Comando)< index*10 do
    Comando:= Comando+ ' ';
  insert (parametro, comando, (index*10)+1);
end;

// envia o comando atual para o servidor
Procedure TFrmmsg.enviarComando;
begin
  If MsgClient100.Connected then begin
    ShowMessage ('Aguarde, ocupado!');
    Exit;
  end;
  label3.caption:= 'Espere, enviando...';
  label3.caption:= 'Resposta: '+ MsgClient100.Postit (comando);
end;

//=========================

procedure TFrmmsg.MsgClient100ConnectionFailed(Sender: TObject);
begin
   ShowMessage('Não foi possível conectar a estação Remota, verifique os seguintes:'+#13+#13+'**Número de IP incorreto...'+#13+'**Estação poder estar desligada ou'+#13+'**Programa de acesso ao cliente desabilitado');


end;

procedure TFrmmsg.MsgClient100Connect(Sender: TObject);
begin
  msgClient100.TimeOut:= 90000;
  msgClient100.ReportLevel:= 2;
end;

procedure TFrmmsg.dxButton1Click(Sender: TObject);
begin
   close;
end;

procedure TFrmmsg.Button1Click(Sender: TObject);
begin
   close;
end;

procedure TFrmmsg.Image2Click(Sender: TObject);
var
   x : string;
   arq: TextFile;
   linha: String;
begin
  AssignFile ( arq, 'C:\LAN Client\ip.txt' );
  Reset ( arq );
  ReadLn ( arq, linha );
  ReadLn ( arq, linha );
  MsgClient100.Host := linha;
  CloseFile ( arq );
  x := GetComputer;
  AdicionarParametro (cMsgsrv, 0);
  AdicionarParametro (x+#13+#13+Edit1.Text, 1);
  EnviarComando;
  edit1.Text := '';
  edit1.setfocus;
end;

procedure TFrmmsg.FormShow(Sender: TObject);
begin
   Brush.Style := BsClear;
end;

end.
